import {showMessage, hideMessage} from './store/actions/system'

// 全局vue实例
export var globalMixins = {
  data () {
    return {
      // 是否调试环境
      debug: process.env.NODE_ENV !== 'production',
      // 页面右下角长按打开调试日志 默认日志不打开
      debugLog: {
        show: false, // 调试日志显示开关
        top: 3, // 调试日志位置
        logs: ['调试日志：'] // 调试日志内容
      },
      loading: {
        show: false,
        msg: ''
      },
      showIframe: false
    }
  },

  vuex: {
    actions: {
      showMessage,
      hideMessage
    }
  },

  watch: {
  },

  methods: {
    // 注：以下方法可以在视图中直接引用，不需要声明，
    // 且会被视图中声明的同名方法覆盖
    // --------------------------------------
    /**
     * 显示正在加载的菊花图 并且设置加载的描述文字
     * @param  {[type]} str [description]
     * @return {[type]}     [description]
     */
    showLoading (str) {
      var _this = this.resetThis()
      _this.loading.msg = str
      _this.loading.show = true
    },
    /**
     * 隐藏正在加载的菊花图
     * @param  {[type]} str [description]
     * @return {[type]}     [description]
     */
    hideLoading () {
      var _this = this.resetThis()
      _this.loading.msg = ''
      _this.loading.show = false
    },
    /**
     * 刷新页面
     * @return {[type]} [description]
     */
    reload () {
      window.location.reload()
    },
    /**
     * 打印日志
     * @param  {[type]} str [description]
     * @return {[type]}     [description]
     */
    log (str) {
      var _this = this.resetThis()
      _this.debugLog.logs.push(str)
    },
    /**
     * 清除日志
     * @return {[type]} [description]
     */
    clearLog () {
      this.debugLog.logs = []
    },
    /**
     * 设置标题
     * @param {[type]} str [description]
     */
    setTitle (str) {
      window.document.title = str
      this.showIframe = true
      setTimeout(() => {
        this.showIframe = false
      }, 500)
      // var WVJBIframe = document.createElement('iframe')
      // WVJBIframe.style.display = 'none'
      // WVJBIframe.src = './static/logo.png?time=' + (+new Date())
      // document.documentElement.appendChild(WVJBIframe)
      // setTimeout(function () { document.documentElement.removeChild(WVJBIframe) }, 0)
    },
    /**
     * 跳转至新页面
     * @param  {[type]} path [description]
     * @return {[type]}     [description]
     */
    goTo (path) {
      this.$route.router.go(path)
    },
    /**
     * 不保留历史跳转至新页面
     * @param  {[type]} path [description]
     * @return {[type]}     [description]
     */
    replaceTo (path) {
      this.$route.router.replace(path)
    },
    resetThis () {
      var _this = this
      while (_this.$parent) {
        _this = this.$parent
      }
      return _this
    }
  }
}
